package com.hk.crm.settings.web.controller;

import com.hk.crm.settings.domain.User;
import com.hk.crm.settings.service.UserService;
import com.hk.crm.utils.MD5Util;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping(value = "/settings/user")
public class UserController  {
    @Resource
    private UserService proxyService;

    @RequestMapping(value = "/login.do")
    @ResponseBody
    private Map<String,Object> login(HttpServletRequest req, HttpServletResponse resp) {
        String loginAct=req.getParameter("loginAct");
        String loginPwd=req.getParameter("loginPwd");
//        将明文转换为秘文
        loginPwd=MD5Util.getMD5(loginPwd);
//        接收ip地址
        String ip=req.getRemoteAddr();
//        System.out.println("===========ip="+ip);
        Map<String,Object> map=new HashMap<>();
        try {
//            如果业务层对象调用login，在业务层抛了个异常，往catch中来，捕捉
            User user= proxyService.login(loginAct,loginPwd,ip);
//            如果能走到这，说明验证正确的，直接将user保存到session中，不用担心user会是空被塞进去
//            因为会抛异常 直接终止了后面的代码
            req.getSession().setAttribute("user", user);
            map.put("success", true);
        }catch (Exception e){
            e.printStackTrace();
//            如果执行catch块的信息，说明验证失败，为controller抛出了异常
            String msg=e.getMessage();//msg是被抛上来的异常，把这个异常返回给前端
            map.put("success", false);
            map.put("msg", msg);
//            调用方法返回的是map的json串给前端
        }
        return map;
    }
}
